package com.atguigu.method;

public class RecursionExercise1 {
    public static void main(String[] args) {
        /*System.out.println(f(10));
        System.out.println(f(9));
        System.out.println(f(8));*/

        for(int i=10; i>=1; i--){
            System.out.println(f(i));
        }
    }
    /*
    猴子吃桃子问题，猴子第一天摘下若干个桃子，当即吃了所有桃子的一半，还不过瘾，又多吃了一个。
    第二天又将仅剩下的桃子吃掉了一半，又多吃了一个。
    以后每天都吃了前一天剩下的一半多一个。
    到第十天，只剩下一个桃子。试求第一天共摘了多少桃子？
    假设  f(n)代表第n天桃子的数量
         f(10) = 1
         f(9) ÷ 2 -1 = f(10)
         f(9) = (f(10) + 1 ) * 2
         ...
         f(n) = (f(n+1) + 1 ) * 2
     */
    public static int f(int n){
        if(n>10 || n<1){
            return 0;
        }
        if(n==10){
            return 1;
        }

        return (f(n+1) + 1 ) * 2;
    }
}
